// 定义图书数据
let bookData = [];
//映射表
const ysb = {
  1: "军事",
  2: "艺术",
  3: "语言",
  4: "天文学",
  5: "技术",
  6: "科幻",
};

// 从本地存储中获取图书数据
const localData = localStorage.getItem("bookData");
if (localData) {
  bookData = JSON.parse(localData);
}

// 获取表单元素
const dataForm = document.querySelector("#data");
const booknameInput = document.querySelector(".bookname");
const authornameInput = document.querySelector(".authorname");
const pressnameInput = document.querySelector(".pressname");
const categoryInput = document.querySelector(".category");

// 获取列表元素
const listTable = document.querySelector("table tbody");
const searchInput = document.querySelector(".search input");
const searchBtn = document.querySelector(".serbook");
const cancelBtn = document.querySelector(".cancel");

// 添加图书函数
function addBook() {
  // 获取表单数据
  const bookname = booknameInput.value.trim();
  const authorname = authornameInput.value.trim();
  const pressname = pressnameInput.value.trim();
  const category = categoryInput.value.trim();

  // 验证表单数据是否为空
  if (!bookname || !authorname || !pressname || !category) {
    alert("请填写完整信息！");
    return;
  }

  // 验证图书分类是否正确
  if (category < 1 || category > 6) {
    alert("图书分类只能是1-6！");
    return;
  }

  // 验证图书是否已经存在
  const existBook = bookData.find((item) => item.bookname === bookname);
  if (existBook) {
    alert("该图书已经存在！");
    return;
  }

  // 添加图书数据
  const newBook = {
    id: Date.now(),
    bookname,
    authorname,
    pressname,
    createdate: new Date().toLocaleString(),
    category: ysb[category],
  };
  bookData.push(newBook);

  // 清空表单数据
  booknameInput.value = "";
  authornameInput.value = "";
  pressnameInput.value = "";
  categoryInput.value = "";

  // 重新渲染列表
  renderList();

  // 将图书数据保存到本地存储
  localStorage.setItem("bookData", JSON.stringify(bookData));
}

// 删除图书函数
function deleteBook(id) {
  // 找到对应图书数据的索引
  const index = bookData.findIndex((item) => item.id === id);
  if (index === -1) {
    return;
  }

  // 删除对应图书数据
  bookData.splice(index, 1);

  // 重新渲染列表
  renderList();

  // 将图书数据保存到本地存储
  localStorage.setItem("bookData", JSON.stringify(bookData));
}

// 渲染列表函数
function renderList() {
  // 清空列表数据
  listTable.innerHTML = "";

  // 遍历图书数据，生成列表内容
  bookData.forEach((item) => {
    const tr = document.createElement("tr");
    tr.innerHTML = `
  <td>${item.id}</td>
  <td>${item.bookname}</td>
  <td>${item.authorname}</td>
  <td>${item.pressname}</td>
  <td>${item.category}</td>
  <td>${item.createdate}</td>
  <td><a class="shanchu" href="javascript:;" data-id="${item.id}">删除</a></td>
`;
    listTable.appendChild(tr);
  });
}

// 查询图书函数
function searchBook() {
  const keyword = searchInput.value.trim();
  if (!keyword) {
    alert("请输入要查询的图书名！");
    return;
  }

  const result = bookData.filter((item) => item.bookname === keyword);
  if (result.length === 0) {
    alert("未找到该图书！");
    return;
  }

  // 清空列表数据
  listTable.innerHTML = "";

  // 遍历查询结果，生成列表内容
  result.forEach((item) => {
    const tr = document.createElement("tr");
    tr.innerHTML = `
  <td>${item.id}</td>
  <td>${item.bookname}</td>
  <td>${item.authorname}</td>
  <td>${item.pressname}</td>
  <td>${item.category}</td>
  <td>${item.createdate}</td>
  <td><a class="shanchu" href="javascript:;" data-id="${item.id}">删除</a></td>
`;
    listTable.appendChild(tr);
  });
}

// 取消查询函数
function cancelSearch() {
  // 清空搜索框数据
  searchInput.value = "";

  // 重新渲染列表
  renderList();
}

// 绑定事件
dataForm.addEventListener("submit", (event) => {
  event.preventDefault();
  addBook();
});

listTable.addEventListener("click", (event) => {
  const target = event.target;
  if (target.classList.contains("shanchu")) {
    const id = Number(target.dataset.id);
    deleteBook(id);
  }
});

searchBtn.addEventListener("click", searchBook);

cancelBtn.addEventListener("click", cancelSearch);

// 页面加载完成后，渲染列表数据
window.onload = function () {
  renderList();
};
